Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

291
Views
Javascript Regex to convert _xxx_ to [i]xxx[i] ignoring any text between <> (URLs) or `` (code)

I'm trying to reformat Slack formatting to bbcode and need a little help. Slack does italics like this:

_this is italic_ and this isn't

My current expression (/\_([^\_]*)\_/gm) works but unfortunately picks up underscores in URLs and inside code snippets. Slack formats URLs and code like this:

<www.thislink.com|here's a link>
`here's a code snippet`

How can I tell regex not to match any underscore pairs inside a link or code snippet? I've been trying negative lookahead and lookbehind but without success.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You need to match and capture what you need and just match what you do not need.

Once you get a match, analyze it and implement the appropriate code logic:

const re = /<[^<>|]*(?:\|[^<>]*)?>|`[^`]*`|_([^_]*)_/g;
const text = "<www.thislink.com|here's a link>\n`here's a code snippet`\n_this is italic_ and this isn't";
console.log( text.replace(re, (m,g) => g !== undefined ? "[i]" + g + "[/i]" : m ) )

See the regex demo. Details:

  • <[^<>|]*(?:\|[^<>]*)?> - a <, then zero or more chars other than <, > and |, then an optional sequence of a | and then zero or more chars other than < and > and then a > char
  • | - or
  • `[^`]*` - a backtick, zero or more chars other than a backtick and a backtick
  • | - or
  • _([^_]*)_ - _, Group 1: zero or more chars other than _, a _.
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!